Buscar

// criando form dinamicamente [sdi]

Código

// Criando Form dinamicamente [SDI]

// Com certeza criar os forms que você vai utilizar em tempo de execução é uma das
grandes
// "sacadas" do Delphi, uma tarefa não tão complicada mas com várias alternativas de
como
// ser executada.

{
Vamos supor inicialmente que você está trabalhando com uma aplicação SDI(Single
Document
Interface) ou documento de interface simples, utilizando essa forma de desenvolvimento
você tem janelas sobre janelas, o Delphi é um exemplo disso, para criar um form
1 - Crie um projeto novo (SDI), o Delphi automaticamente cria o Form1.
2 - Crie um Form Novo, ele receberá o nome de Form2.
3 - Va em Options/Project, você vai ver 2 list boxes, o da esquerda contem os forms que
    devem ser criados automaticamente quando sua aplicação for iniciada, os 2 forms
devem
    estar ai, pois bem mova Form2 para o List Box da direita que deve conter os forms
Nesse
    momento vc retirou do Delphi a obrigação de criar o Form2, se você não o criar e em
    algum momento fizer referencia a ele isso deve causar um erro.
4 - Ok, esqueça temporariamente Form2, em Form1 crie um botão e digite o código abaixo
    em seu evento:
}


Form1.Button1Click
implementation
{$R *.DFM}
uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(self);
  Form2.Show;
end;

end.

{
5 - Observe o uses criado logo após {$R *.DFM}
, ele deve fazer referência a Unit de
Form2,
    que no caso do meu exemplo chama-se Unit2.

Pronto, com esses pequenos cuidados você já estara criando seus forms em tempo de
execução.
Agora uma dica interessante, se você executar esse programa você vai ver que quando
Form2
for criado o usuário pode clicar em Form1 e esse receberá o foco, coisa que pode não ser
interessante.
Para evitar este tipo de comportamento da sua aplicação utilize ShowModale não Show
para
chamar o segundo form
Form2 := TForm2.Create(self);
Form2.ShowModal;
O ShowModal vai fazer com que a aplicação fique com Form2 permanentemente em
primeiro plano,
Form1 não poderá ser acessado até que Form2 sejá fechado.
}

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 13/01/04
Por: Fabricio Giovanni Costa De Souza
Visualizada: 4975 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009